#ifndef MOVEPIECE_H
#define MOVEPIECE_H

#include "IMove.h"
#include "model/Location.h"
#include "Typesfwd.h"

class MovePiece : public IMove
{
public:
    const model::Location from, to;
    const bool capt;

    MovePiece(const model::Location& from, const model::Location& to, bool capture);

    void execute(model::ChessBoard&);

    void undo(model::ChessBoard&);

    bool operator ==(const MovePiece&) const;

    bool operator <(const MovePiece&) const;
private:
    globals::cPiece taken;
};

#endif // MOVEPIECE_H
